<?php

class M_Usuario extends CI_Model {

    function __construct() {
        parent::__construct();
        $this->_tabela = 'USUARIO';
    }

    public function validaUsuario($idt, $senha) {
        $sql = "SELECT  PST.PST_GRAD_SIGLA,
                        PST.ID PST_GRAD_ID,
                        U.NOME_GUERRA, 
                        U.IDT, 
                        P.PERFIL_DESC,
                        P.ID PERFIL_ID
                FROM USUARIO U
                    INNER JOIN PERFIL P ON P.ID = U.PERFIL_ID
                    INNER JOIN PST_GRAD PST ON PST.ID = U.PST_GRAD_ID
                WHERE IDT = ? 
                    AND SENHA = ? 
                    AND STATUS = 1";

        return $this->db->query($sql, array($idt, $senha));
    }

    /**
     * Grava um usuário no banco de dados
     * @param array $dados
     * @return true/false
     */
    public function setUsuario($dados) {
        return $this->insert($dados);
    }

    /**
     * Retorn um usuario
     * @param string $idt
     * @return Obj Usuario
     */
    public function getUsuario($idt = NULL, $colunas = NULL) {
        $where = ($idt == NULL) ? '' : "IDT = " . $idt;
        return $this->select($colunas, $where);
    }

    /**
     * @param string $idt
     * @return true/false
     */
    public function updateUsuario($dados) {

        $where = "IDT = " . $dados['IDT'];

        if (empty($dados['SENHA'])) {
            unset($dados['SENHA']);
            return $this->update($dados, $where);
        } else {
            return $this->update($dados, $where);
        }
    }

    /**
     * Retorna um array de objeto de usuarios
     */
    public function listaUsuarios() {

        $sql = "SELECT U.`NOME`,
                        U.`IDT`,
                        U.`NOME_GUERRA`,       
                        PST.`PST_GRAD_SIGLA` PST_GRAD,
                        PST.`ID` PST_GRAD_ID,
                        P.`PERFIL_DESC` PERFIL,
                        P.`ID` PERFIL_ID,
                        D.`DEP_DESC` SESSAO,
                        D.RAMAL,
                        D.`ID` SESSAO_ID,
                        U.`STATUS` STATUS_ID,
                        
                        CASE U.`STATUS`
                             WHEN 1 THEN 'ATIVO'
                             WHEN 0 THEN 'INATIVO'
                             WHEN 2 THEN 'BLOQUEADO'
                        END AS STATUS
                 FROM USUARIO U
                   INNER JOIN PST_GRAD PST ON PST.`ID` = U.`PST_GRAD_ID`
                   INNER JOIN PERFIL P ON P.`ID` = U.`PERFIL_ID`
                   INNER JOIN DEPENDENCIA D ON D.`ID` = U.`DEPENDENCIA_ID`
                  ORDER BY P.ID";
        return $this->db->query($sql);
    }

    public function excluirUsuario($idt) {
        $where = "IDT = " . $idt;
        $dados = array('STATUS' => '0');
        return $this->update($dados, $where);
    }

    /**
     * Funçao que destaca nome de guerra do militar
     * @param String $n_comp, String $n_guerra
     * @return String $nomeGrifado
     * @author Lemoel
     * @since 11/2012
     */
    function grifarNomeGuerra($n_comp, $n_guerra) {
        $nom = explode(" ", $n_comp);
        $guer = explode(" ", $n_guerra);
        $grifado = "";
        $b = 0;
        for ($a = 0; $a < sizeof($nom); $a++) {
            if (strlen(@$guer[$b]) == 1 && @$guer[$b] == substr(@$nom[$a], 0, 1)) {
                $grifado[$a] = "<b>" . substr($nom[$a], 0, 1) . "</b>" . substr($nom[$a], 1, strlen($nom[$a]) - 1);
                $b++;
            } elseif (@$nom[$a] == @$guer[$b]) {
                $grifado[$a] = "<b>$nom[$a]</b>";
                $b++;
            } else {
                $grifado[$a] = "$nom[$a]";
            }
        }
        $nomeGrifado = implode(" ", $grifado);
        return $nomeGrifado;
    }

    public function cmbUsuarioSv($idt = null,$tipoSv) {
        
        switch ($tipoSv) {
            case 'ofDeDia':
                    $where = ' WHERE U.STATUS = 1  AND U.PERFIL_ID = 7 ';
                break;
            
            case 'adj':
                    $where = ' WHERE U.STATUS = 1 AND U.PERFIL_ID = 6 ';
                break;
            
            case 'cmtGda':
                    $where = ' WHERE U.STATUS = 1 AND U.PERFIL_ID = 5 ';
                break;
            
            case 'acompanhante':
                    $where = ' WHERE U.STATUS = 1 AND U.PERFIL_ID = 10 ';
                break;

            default:
                break;
        }
        
        $sql = "SELECT U.IDT,
                       PG.`PST_GRAD_SIGLA`,
                       U.NOME_GUERRA
                 FROM USUARIO U                 
                    INNER JOIN PST_GRAD PG ON PG.`ID` = U.`PST_GRAD_ID`
                 $where ";
        
        $resultUsuario = $this->db->query($sql)->result();

        /*
         * Inicializando var $comboPstGrad
         */
        $comboUsuario = null;

        /*
         * Montando a combo para view
         */
        foreach ($resultUsuario as $value) {
            $selected = ($value->IDT == $idt) ? "selected='selected'" : '';
            $comboUsuario .= "<option $selected value='$value->IDT'>$value->PST_GRAD_SIGLA -  $value->NOME_GUERRA</option>";
        }
        return $comboUsuario;
    }
    
    public function cmbAcompanhante($idt) {

         $sql = "SELECT U.IDT,
                       PG.`PST_GRAD_SIGLA`,
                       U.NOME_GUERRA
                 FROM USUARIO U                 
                    INNER JOIN PST_GRAD PG ON PG.`ID` = U.`PST_GRAD_ID`
                    INNER JOIN PERFIL P ON P.`ID` = U.`PERFIL_ID`
                 WHERE  U.`PERFIL_ID` = '10'
                 AND U.STATUS = 1";
        
        $resultUsuario = $this->db->query($sql)->result();
        
         /*
         * Inicializando var $comboPstGrad
         */
        $comboUsuario = null;
        
         foreach ($resultUsuario as $value) {
            $selected = ($value->IDT == $idt) ? "selected='selected'" : '';
            $comboUsuario .= "<option $selected value='$value->IDT'>$value->PST_GRAD_SIGLA -  $value->NOME_GUERRA</option>";
        }
        return $comboUsuario;
    }
    

}

?>